using System;
using System.Collections.Generic;
using NopSolutions.NopCommerce.BusinessLogic.Products;

namespace NopSolutions.NopCommerce.LuceneHelper
{
    public class FilterEventArgs : EventArgs
    {
        private readonly IList<Facet> _facets = new List<Facet>();
        private IList<int> _manufactures = new List<int>();
        private IList<PriceRange> _priceRangeValues = new List<PriceRange>();
        private IList<CategoryValue> _categories = new List<CategoryValue>();
        private readonly ProductSearchResult _productSearchResult;

        public FilterEventArgs(ProductSearchResult productSearchResult, IList<Facet> facets, IList<int> manufactures,
                               IList<PriceRange> priceRangeValues, FilterContext filterContext, IList<CategoryValue> categories)
        {
            _productSearchResult = productSearchResult;
            FilterContext = filterContext;
            _priceRangeValues = priceRangeValues;
            _facets = facets;
            _manufactures = manufactures;
            _categories = categories;
        }

        public ProductSearchResult SearchResult
        {
            get { return _productSearchResult; }
        }

        public IList<Facet> Facets
        {
            get { return _facets; }
        }

        public IList<int> Manufactures
        {
            get { return _manufactures; }
            set { _manufactures = value; }
        }

        public IList<CategoryValue> Categories
        {
            get { return _categories; }
            set { _categories = value; }
        }

        public IList<PriceRange> PriceRangeValues
        {
            get { return _priceRangeValues; }
            set { _priceRangeValues = value; }
        }

        public FilterContext FilterContext { get; set; }
    }
}